This server will not run under Win3.X.
Server Seven is a WWW server for Win95 that supports ISAPI. ISAPI is a high performance gateway interface to allow the extension of server functionality.
If you are reading this, you are doing so by one of two ways. The first is by simply loading the file into your browser, the second is by having Server Seven (S7) serve it to you.
If you can click on the link below and you see the current time, then the server is operational and you can skip the next section. If not, then follow the troubleshooting steps below.
The above "clock" page is what's called a "dynamic" HTML page-- it is created on-the-fly and then the server terminates the connection. The server doesn't have to terminate the connection. It can keep the socket open and continue sending information as it becomes available. This is known as server push and it is illustrated in the example below. Look at the source to see what needs to be done to convince the browser to properly handle the continuous data flow.
Post and Get refer to the way clients get information to and from the server. Most all links you click on are GET requests. Most all form Submit buttons you click on are POST requests. You can send information to the server using GET (and S7 supports it), but the POST method is preferred.
The samples below demonstrate GET and POST. The demonstration is in the form of a paging database and a way to page a person from the WWW. These won't work if you're outside of my employer's intranet, so dont worry if nothing happens. Instead, look at these as examples of what can be done and how it is done. Source is included for all of the samples below.
Add to Paging Database: Retrieves a list of users in the paging database and allows new users to be added. Uses both GET and POST.
Page Someone via WWW: Dynamically creates a list of links, each link causes an SMTP mail message to be generated. This mail message then causes the selected user to be paged. Cookies are used to maintain the "Number to be displayed" data from session to session.
ISAPIForum A simple example showing how an ongoing discussion can be maintained between many users using WWW. Each user can read what all the others have posted and add his or her own thoughts on a subject.
Database Query Shows how to access a database using ISAPI. This example assumes you have Borlands Database Engine installed and the examples installed using the default directories. Specifically, this example loads EMPLOYEE.DB located under the DBDEMO alias.
ISAPIChat. A very simple example showing how multiple clients can connect to the server and chat using ISAPI. NOTE: This demo does not us any type of thread synchronization. Anyone looking to extend this example into something more elaborate should first address this issue.
Server Seven will allow HTML pages to be secured as needed. The UI doesn't yet support the changing of priveledges via the S7 configuration screen, and there isn't much in the way of group access and other niceties. Nonetheless, the support is adequate for many needs.
To limit the access of any file, several things must happen:
The page below is secured. To see it, you must enter the user name mattt and the password pizza.
Filters are DLL's that allow any aspect of the server operation to be modified. The most obvious use for this is to allow for macro substition in an HTML page such as this:
The current time is %TIME%
Your address is %REMOTE_ADDR%
The current time (again) is %TIME%
This server is %SERVER_NAME%
This software is %SERVER_SOFTWARE%
If the above few lines have percent signs showing, then you need to load the DLL FILTER.DLL (source is included). Choose Options-ServerConfig-ISAPI Filters and Add the filter named FILTDEMO.DLL in the server root directory. Once you've loaded the filter (and confirmed it has shown up in the ISAPI Extension/Filter Activity window), reload this document and look at how the above "macro" have been expanded.
URL mapping is easy to do with filters. Make sure the MAPURL.DLL filter is loaded and click on this link:
This link references a file called REMAP.HTM. However, the MAPURL filter sees that request and instead substitutes C:\AUTOEXEC.BAT. This substitution is based on the contents of the file #URLMAP.TXT (created the first time the filter is used in the same directory as the DLL). This file defines the simple one-to-one mapping rules and is created in the same directory as the MAPURL.DLL the first time the filter is used. Be careful with this! You could accidentally circumvent any security you've set up with this DLL!
Server Seven only supports the most rudimentary filter operations at this point. Specifically, write raw data and map url.
The DLL's included below are ISAPI example written by others for use on the MS IIS.
Sample1.dll Taken from Acadia Software's TISAPI Demo Package
ExISAP.DLL Taken from Stephen Genusa's WebSBT Package
ExISAPI1.DLL Taken from Stephen Genusa's WebSBT Packag
I appreciate the e-mails! Please keep letting me know what you're doing with Delphi, ISAPI and S7!!!
Release 0.50/0.51
Release 0.33
Release 0.32
Release 0.31
Release 0.30
If you're connected to the net as you read this, then click here to go to my home page for more information and pointers to such things as CGI, ISAPI spec, etc.
You may email me with bugs or suggestions. If something isn't implemented that's causing you real headaches, let me know and I'll fix it. If you have a DLL that works with another ISAPI server but doesn't work with S7, let me know. My time is very limited, but most of these types of problems are simple.
This software is free for you to use or modify, but I reserve the copyright. Consider the server source unavailable until the server is completed. At that point, I'll probably release the source for people to use or study. Until then, please don't ask!
My email address is mattt@interaccess.com